Contact page

ABSTRACT

A computing system and a user interface display requested data corresponding with a contact at a display device. The requested data includes contact information, communication histories, and files associated with the contact. The requested data is obtained from one or more contact information directories located locally and/or remotely from the computing system. The user interface also displays contact-centric tasks that may be engaged in between the user and the contact based upon the capabilities of the corresponding computing systems or that can be performed on a contact. Some of the contact information can be edited with an edit mode of the user interface. The contact may be a person, group, organization, or household.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention relates to user interface menus in computers and electronic devices and, more particularly, to methods, systems, and computer program products for displaying contact information with a user interface.

2. Background and Relevant Art

A contact management system is generally referred to in this application as a system, directory or database that contains contact information about people, groups, organizations, businesses, or any other identifiable entity, each of which is referred to herein as a contact.

Contact management systems are extensively used in the computer industry to store and display contact information that is pertinent to the corresponding software applications to which they belong. For example, email applications typically include directories for storing and displaying the email addresses of contacts that can be emailed. Money management applications typically include directories for storing contact information about related financial contacts, such as, for example, banks, accounting service organizations, financial planning organizations, and so forth. Other examples of software applications that utilize contact management systems include time management applications, instant messaging applications, network gaming applications, business directory applications, telephony applications, and so forth.

Contact management systems are also widely used in many hardware devices that are not considered traditional computers. For example, many telephones, facsimile devices, and photocopying devices also include contact management systems for storing contact information that may be used to perform a desired function such as initiating a telephone call, a facsimile transmission, or a telecopy transmission.

One problem encountered by existing contact management systems, however, is that the large variety of specialized and disparate contact management systems can make it difficult for a user to quickly access all available contact information for the various applications at the same time. This can be a problem, for example, when a user desires to identify all available means for making contact with a given entity because it may require the user to separately access various directories from many different contact management systems in order to obtain the desired contact information. For example, it may be necessary to access a telephone directory to obtain the home or cell telephone number for the contact, an email directory to obtain a primary email address for the contact, a business directory to obtain the business telephone number, and business email address of the entity, and so forth.

Having disparate contact management systems can also be a problem for obtaining different types of contact information about different contacts. For example, it may be desirable to view the email address of a first contact, the business telephone number of a second contact, and the cell telephone number of a third contact. If the desired contact data for each of the different entities is located in a different contact management system of different applications, then each application will have to be accessed to obtain the desired information, thereby requiring the undesirable expenditure of time and resources.

Searches and queries for specific contacts or contact information must also be performed separately on each of the various contact management systems. This can particularly be a problem when a user has forgotten in which of the contact management system directories the contact information is stored.

To overcome some of these problems, some contact management systems are configured to store more contact information then is required for the corresponding application. For example, an email directory may be configured to store the addresses, phone numbers and other information about the various contacts stored therein. However, the interfaces and limitations for displaying contact information typically vary from one application to the next, thereby making it difficult to become customized to the various contact management systems. Furthermore, it would be somewhat onerous to duplicatively enter every piece of contact information about every contact into every utilized contact management system, even if it were possible. This redundant storage would also represent undesirable and unnecessary expenditure of resources.

Yet another problem with existing systems is that they lack extensibility. In particular, existing contact management systems are dedicated to particular applications and are not extensible to other applications for which they are not originally created. This inhibits the sharing and searching of contact information from the various contact information directories of the various applications.

Accordingly, there currently exists a need in the art for improved contact management systems and interfaces for accessing contact information.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to computer program products and interfaces for accessing contact information about one or more contacts and for providing access to communication histories and files that are associated with the contacts.

According to one embodiment, a user interface and a computing system operate to provide contact information corresponding with a predetermined contact. The contact information is displayed at the computing system upon receiving a user request for the contact information. The user request may include a query, a selection from a menu or display object, or any other known means for entering a user request. The requested contact information that is displayed may include general contact information, such as the name(s), email address(s), and phone number(s) of the contact, an image of the contact, as well as keywords and notes associated with the contact.

The contact information may also include status information, indicating whether the contact is online, offline, at work, at home, or at some other location. In certain embodiments, the contact information may also include other information, such as the contact's birth date, notices of recent communication from the contact, and so forth. Contact information can also include associations with corresponding files and relationships with other contacts.

The contact information provided for the predetermined contact may be obtained from one or more contact information directories utilized by one or more application programs. In some instances, contact information about a contact is obtained from public and private directories that are accessible to the computing system. For example, a public MSN directory may publish a profile corresponding with the predetermined contact, a private organization may also provide certain contact information about the contact. The contact information may also be published or otherwise provided by the contact. For example, the contact may supply an image for display with the contact information.

The user interface may also display contact-centric tasks that may be performed with the predetermined contact based upon the software and hardware capabilities of the computing system that is utilizing the user interface and the contact's computing system(s). Contact-centric tasks may include, for example, instant messaging and chat capabilities, gaming capabilities, telephony capabilities, and so forth. Contact-centric tasks can also include actions or tasks that can be performed on a contact (e.g., add a contact to a group, edit contact information associated with the contact, and so forth).

The user interface may also provide a link to a communication history of the contact. When a user selects the link, or otherwise provides a request to view the to the communication history of the contact, the user interface displays a record of communications with the contact. This record may include communications and files generated from a variety of communication software, including instant messaging, email, facsimile, telephony, imaging, and so forth.

The user interface may also provide a link to files associated with the contact. When a user selects the link, or otherwise provides a request to view the files associated with the contact, the user interface displays the files in one or more directories that have been associated with the contact. The files may be determined to be associated with the contact based on the file properties and attributes (e.g., location, author, keyword, and so forth).

The user interface also provides a window for editing the contact information and for setting preferences for the manner in which the contact information is displayed. For example, notes and keywords may be assigned to a contact. A preferred email, phone and address of the contact may also be selected for display in various embodiments of the user interface.

Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 illustrates one embodiment of an operating system that provides a suitable operating environment for the present invention;

FIG. 2 illustrates one embodiment of a functional block diagram of a computing system that is connected with a display device and a remote device and that includes various computer modules for implementing methods of the invention;

FIG. 3 is a flow chart illustrating certain acts of a method for displaying requested contact information, communication history and associated files of a contact;

FIG. 4 illustrates one embodiment of the user interface of the invention in which contact information is displayed with contact-centric tasks and links to a communication history and associated files of a contact;

FIG. 5 illustrates another embodiment of the user interface of the invention in which contact information is displayed with a communication history of a contact;

FIG. 6 illustrates another embodiment of the user interface of the invention in which contact information is displayed with a communication history of a contact that is displayed differently than the communication history of FIG. 5; and

FIG. 7 illustrates one embodiment of the user interface of the invention in which contact information is displayed with fields that can be used to edit the contact information.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention is directed to improved methods, systems, and corresponding computer program products and interfaces for obtaining desired contact information from one or more contact information directories. The embodiments of the present invention may comprise or be performed with a special purpose or general-purpose computer including various computer hardware, as discussed in greater detail below.

Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.

Operating Environment

FIG. 1 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. However, it should be emphasized that the present invention is not necessarily limited to any particular computerized system and may be practiced in a wide range of computerized systems including, but not limited to telephone and other communication devices, PDAs, information kiosks, and so forth.

Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by computers in network environments. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.

Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination of hardwired or wireless links) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing system in the form of a conventional computer 120, including a processing unit 121, a system memory 122 comprising computer readable media, and a system bus 123 that couples various system components including the system memory 122 to the processing unit 121. The system bus 123 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM) 124 and random access memory (RAM) 125. A basic input/output system (BIOS) 126, containing the basic routines that help transfer information between elements within the computer 120, such as during start-up, may be stored in ROM 124.

The computer 120 may also include a magnetic hard disk drive 127 for reading from and writing to a magnetic hard disk 139, a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to removable optical disk 131 such as a CD-ROM or other optical media. The magnetic hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive-interface 133, and an optical drive interface 134, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules and other data for the computer 120. Although the exemplary environment described herein employs a magnetic hard disk 139, a removable magnetic disk 129 and a removable optical disk 131, other types of computer readable media for storing data can be used, including magnetic cassettes, flash memory cards, digital versatile disks, Bernoulli cartridges, RAMs, ROMs, and the like.

Program code means comprising one or more program modules may be stored on the hard disk 139, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137, and program data 138. A user may enter commands and information into the computer 120 through keyboard 140, pointing device 142, or other input devices (not shown), such as a microphone, joy stick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 coupled to system bus 123. Alternatively, the input devices may be connected by other interfaces, such as a parallel port, a game port or a universal serial bus (USB). A monitor 147 or another display device is also connected to system bus 123 via an interface, such as video adapter 148. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.

The computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as remote computers 149 a and 149 b. Remote computers 149 a and 149 b may each be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically include many or all of the elements described above relative to the computer 120, although only memory storage devices 150 a and 150 b and their associated application programs 136 a and 136 b have been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local area network (LAN) 151 and a wide area network (WAN) 152 that are presented here by way of example and not limitation. Such networking environments are commonplace in office-wide or enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 120 is connected to the local network 151 through a network interface or adapter 153. When used in a WAN networking environment, the computer 20 may include a modem 154, a wireless link, or other means for establishing communications over the wide area network 152, such as the Internet. The modem 154, which may be internal or external, is connected to the system bus 123 via the serial port interface 146. In a networked environment, program modules depicted relative to the computer 120, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing communications over wide area network 152 may be used.

FIG. 2 illustrates a functional block diagram of several components of a computing system and the user interface of the invention. In the present embodiment, the computing system 200 is connected with a display device 210 and a remote device 220. The connection link between each of these components may be a physical connection or a wireless connection. It will be appreciated that the display device 210 may be located remotely from the computing system 200 or integrally connected with the computing system 200. The display device 210 may comprise any screen, monitor, or other device that is configured to display images and/or text.

During use the computing system utilizes a user interface to display the requested data at the display device. As defined herein, the requested data includes the contact information (this contact information may include basic data like phone numbers, email addresses, IM addresses, and so forth, as well as complex data like online presence, free/busy information, important dates, web page URLs, and relationships to other contacts like spouses, groups, other companies, and so forth), communication history, and associated files of a contact that are requested by a user. Contact information may also include identity keys (e.g., PINS and other character strings that identify the contact on a particular system). The functionality of the user interface to display this requested desired data is enabled by various computer modules, such as user interface module 230, remote store interface module 240, schema module 250 and communication module 260, each of which will now be described.

The user interface module 230 includes sufficient computer executable instructions for operably displaying a user interface at the display device and for responding to user input entered at the user interface. The remote store interface module 240 includes sufficient computer executable instructions for searching and processing contact information stored at remote devices, such as remote device 220. Remote device 220 may be a remote computer, server containing contact information. Although only a single remote device 220 is shown, it will be appreciated that the computing system may be connected with any number of remote devices. It will likewise be appreciated that the computing system 200 does not necessarily need to be connected with a remote device 220 to enable the invention.

The schema module 250 contains sufficient computer executable instructions for mapping contact information, files, and communication histories into categories and classifications that can be recognized by the user interface for display on the display device 210. The categories and classifications defined by the schema module 250 enable the desired data contact information to be filtered and displayed into the designated categories and classifications, as described below. The schema module 250 is useful for enabling the requested data that is accessed from remote stores to be organized according to a single unifying schema. The schema module 250 can also be used to map and identify the requested data that is stored in local stores, such as storage media 270.

The communication module 260 includes sufficient computer executable instructions for enabling communication between the various modules, as well as the display device 210, the remote device 220, and the storage media of the remote device 220 and computing system 200. In particular, the communication module enables the modules to access and process contact information, communications, and files that are stored in one or more directories that may be stored locally and remotely.

The present embodiment illustrates three directories, 280 a, 280 b, and 280 c that correspond with different applications. By way of example, and not limitation, directory 280 a may correspond with an email directory, directory 280 b may correspond with a telephony directory. It will be appreciated, however, that the invention is not limited to use with any particular number of contact information directories or applications to which they correspond.

Contact Page

FIG. 3 illustrates a flowchart 300 of methods for displaying requested data from one or more heterogeneous directories. More particularly, the flowchart 300 illustrates methods for displaying the contact information, communication history, and files that are associated with a contact. As suggested above, the requested data may be aggregated from a plurality of disparate directories or data stores or obtained from a single directory or data store.

As illustrated, the flowchart 300 includes various acts for displaying the requested data, each of which will now be described. Some of the illustrated acts will also be described with specific reference to FIGS. 4-7.

Initially, a user request for contact information is received at the computing system 200 (act 310). This request can include a query or search for contact information about a predetermined contact. The request for contact information may also include a selection of a name, symbol or image that corresponds to the contact from a menu or a display. Any other known means for entering a user request for contact information may also be utilized. Upon receiving the user request for contact information, the user interface displays the requested contact information at the display device 210 (act 320).

FIG. 4 illustrates one embodiment of the user interface 400 of the invention for displaying contact information (act 320). As shown at 410, some general contact information including email addresses, phone numbers, and addresses associated with the contact (Jane Doe) are displayed by the user interface 400. The contact information also includes note and keywords that have been associated with the contact by the user or another entity.

Some contact information is displayed in a condensed form that includes the contact's name, image, online status, and email addresses and phone numbers, birth date, spouse, employment information (company, title, manager, direct reports, office #, etc), free/busy, children, etc., as shown at 420. The presence status of the contact (e.g., at work, online, at home, etc.) may be determined by the computing system 200. Alternatively, the status may be published by the contact and sent to the computing system 200. The status may also be determined by any other suitable manner, including, but not limited to notifications that are sent by a server or other remote computer to the computing system 200.

The preferred email and phone number that are displayed with the condensed contact information at 420 can relate directly to the status of the contact. For example, if the contact is at work, the preferred email and phone number may include the work email and work phone number. Alternatively, the preferred email and phone number may be predetermined and published by the contact. The preferred email and phone number may also be designated by the user via the edit mode of the user interface, as described below in reference to FIG. 7. According to one embodiment, the displayed contact information includes all email addresses and phone numbers that are known to be associated with the contact (e.g., home, work, cell, fax, alternate, vacation home, additional lines, and so forth) with an indication as to which of the known email addresses and phone numbers are preferred.

The image of the contact that is displayed with the contact information, at 420, may be published by the contact or provided by the user. The image may also be provided or published by any other entity.

As shown by FIG. 4 at 430, the contact information may also include the birthday of the contact, notifications of communications received by the contact, and any other desired contact information.

The contact information that is displayed by the user interface 400, may be obtained from one or more directories that are located in one or more local stores and/or in one or more remote data stores, as mentioned above. If the contact information is obtained from a plurality of directories, the contact information may be displayed in a format that visually indicates what directories the contact information came from.

For example, certain contact information corresponding to a MSN profile, and obtained from a MSN server, may be provided in a frame 440 separated from the frame 410 of the general contact information. As shown, the contact information provided by the MSN profile includes a status indication that the contact is currently listening to music. Certain contact information related to an organization, and retrieved from an organization server, is also displayed in a separate frame 440. The contact information provided by the organization server includes a status indication that the contact is currently scheduled for a meeting. It will be appreciated that the present example is merely illustrative as to certain types of contact information that may be aggregated and displayed according to the invention, and is not intended to limit the scope of the invention. Rather any variety of contact information may be displayed.

According to one embodiment, the contact page interface is utilized in combination with one or more APIs through which third parties can add relevant information about the contact and that can be displayed on the contact page. Any contact information supplied by a third party through the one or more APIs may be displayed in frame 440 or another portion of the contact page.

FIG. 4 also illustrates how the user interface can be used to display other information, not considered traditional contact information. For example, the user interface 400 can display contact-centric tasks 450 that can be used to initiate an activity or communication with the contact. These contact-centric tasks 450 are preferably, but not necessarily, limited to the tasks that can be performed between the computing system 200 and a remote computing system of the contact. A determination as to what tasks can be performed between the user and the contact is a function of the software and hardware capabilities of the computing system 200 and the contact's computing system. For example, if both the computing system 200 and a remote computing system of the contact have a network game installed and are connected to the same network, then the contact-centric tasks 250 may include a link for launching the game between the user and the contact.

It will be appreciated that the scope of the invention is not limited to any number or type of contact-centric task that may be displayed. For example, contact-centric tasks can also include actions or tasks that can be performed on a contact (e.g., add a contact to a group, edit contact information associated with the contact, and so forth). According to one embodiment, a third party can include tasks at any time that can be displayed at the contact page through the use of one or more APIs. These APIs may comprise part of the computer-executable instruction of the modules described above, or comprise discrete APIs that are separate from the modules described above.

The user interface 400 may also display links 460 for editing, deleting or adding new contacts. One embodiment for editing contacts with the user interface 400 is described below in reference to FIG. 7.

According to one embodiment, the user interface 400 displays a link 470 to a contact communication history (act 330), as well as a link 480 to files that are associated with the contact (act 360). These links 470, 480 may include hypertext links, buttons, menu options, or any other suitable objects that are displayed by the user interface 400.

When the communication history link 470 is selected or another request to view a desired communication history is received (act 340), the user interface displays the desired communication history (act 350).

FIG. 5 illustrates one embodiment of the user interface 500 in which contact information 510 is displayed along with the communication history of the contact. In this embodiment, the contact information 510 includes an image, name, and status of the contact, as well as certain email addresses and phone numbers of the contact.

The communication history includes a record of communications sent by the contact, shown at 520, and a record of communications sent to the contact, shown at 530. The types of communications that are displayed may include email messages, instant messaging messages, telephony communications, presentations, and any other types of communications. The displayed history of communications is obtained from one or more data stores corresponding with one or more communication applications (e.g., email, instant messaging, etc.). For convenience, the quantity of displayed messages may be limited (e.g., 5 of 36 sent by Jane Doe communications are displayed), as shown. To view the additional communications, traditional user interface features such as pull down menus, scroll bars, and any other objects may be provided to enable a user to view all of the communications.

FIG. 5 also illustrates that the user interface may include searching features 540 for searching for a particular communication. These search features may include type in lines for searching particular directories, filters for searching by categorization or classification defined by a schema, and filters for searching by keyword. These searching features 540 do not limit the scope of the invention, but merely illustrate that the communication history corresponding to a contact may be searched to find and display one or more desired communications from one or more directories and data stores.

Although the previous example is given with regard to searching for a communication within the communication history, it will be appreciated that the search functionality is not limited to searching through the communication history. Rather, the searching features 540 can be used to search for anything related to the contact, including, but not limited to contact information, keywords, and notes associated with the contact. For example, the searching features 540 may be displayed and used from the interface 400 shown in FIG. 4. The searching features may be used, for example, to search for other contacts that are related to the contact through the schema module 250, described above.

FIG. 6 illustrates another embodiment of the user interface 600 in which contact information 610 is displayed with a communication history of a contact. In this embodiment, the communication history is sorted by at least one of date and time, such that a first frame 620 shows communications from Apr. 26, 2002, a second frame 630 shows communications from Apr. 25, 2002, a third frame 640 shows communications from Apr. 23, 2002, and so forth. The communications from Apr. 23, 2002 are not presently visible, in the current embodiment, because of the size constraints of the user interface 600. However, the user interface 600 provides a scroll bar 650 for enabling a user to view communications from Apr. 23, 2002, as well as other dates. It will be appreciated that other tools may be used in lue of the scroll bar 650 to view the entire communication history.

It will also be appreciated that the format for displaying the communication history is not limited to the formats illustrated in FIGS. 5 and 6. For example, the communication history may also be formatted according to the type of communication that is sent or received (e.g., instant message, email, facsimile, telephony, and so forth), the week/month/year in which the communication is sent or received, or any other desired format. To enable a user to change the view of the communication history, a menu of options for altering the view or format of the communication history may be provided, such as, but not limited to menu 660.

As mentioned above, with reference to FIGS. 3 and 5, the user interface may provide a link 480 to files that are associated with the contact (act 360). When this link 480 is selected or another request from a user is received to view the contact associated files (act 370), the user interface displays the files associated with the contact (act 380). Files may be associated with a contact based on the properties and attributes of a file, such as, but not limited to the author, sender, recipient, subject (e.g., subject of a photo) and editor, of the file. A contact may also be associated with a file by keyword, link, and schema definitions, such as, for example, based on a relationship the contact has with another contact or based on the occurrence of the contacts name or other contact information within a file. The association of the files to the contact may occur locally, with the modules of the computing system 200, or at a remote device. It will be appreciated that the scope of the invention is not limited to any method for associating a contact to a file.

The scope of the invention is also not limited to any format for displaying the files that are determined to be associated with a contact. For example, the files may be displayed and sorted by file type, by file size, by file creation date, by file modification date, or any other format.

Attention is now redirected to FIG. 3. As shown, acts 320, 330, and 340, are shown to be encompassed within the step for displaying requested data (step 390). Although step 390 may include corresponding acts 320, 330 and 340, it will be appreciated that step 390 is not limited to the illustrated acts. Rather, step 390 may include any corresponding acts that are suitable for enabling the user interface to display requested data. Accordingly, step 300 may include any combination of corresponding acts 320, 330 and 340, as well as other suitable acts for displaying requested data.

Although much of the foregoing disclosure is provided with reference to displaying requested data, it will be appreciated that the scope of the invention also extends to editing contact information for enabling the requested data to be displayed in a desired manner. For example, FIG. 7 illustrates one embodiment of the user interface 700 that may be used to edit contact information and designate a desired display format of the contact information. A user may advance to the embodiment of the user interface 700 shown in FIG. 7 by selecting an appropriate link from the selection of links 460 provided in FIG. 4.

This embodiment of the user interface 700, includes many of the same elements that have been described above. For example, the user interface 700 includes a frame 710 containing general contact information and a frame containing consolidated contact information 720. Unlike the previous embodiments, however, the contact information in the present embodiment is displayed in various fields that can edited by the user, including email address fields 730, physical address fields 740, phone number fields 750, keyword fields 760, and note fields 770 that are associated with a contact.

With the user interface 700, the user can manually enter or alter the content of contact information. Any modification to the contact information can be cached locally in storage medium 270 for reference at a later time, such as when the user subsequently requests the contact information of the contact (act 310). When a subsequent request for the contact information is received, the contact information may be obtained from the local storage in the format it was modified by the user. Alternatively, when a request for contact information is received, one or more directories in local and remote storage may be queried to provide the requested contact information, thereafter the user modifications to the contact information can be obtained from the local storage and applied to the contact information to provide the desired modified format of the contact information.

If the contact information stored in the local cache and any remote systems linked to the computing system 200 have different versions of contact information corresponding to the same contact, they can be synchronized periodically, or automatically upon making the modifications to the contact information.

Some contact information may not be modified, however. For example, the MSN profile 780, obtained from a remote store, may not be modified by the user in the present example because the user does not have authority to edit the MSN profile 780.

One purpose for enabling certain contact information to be edited is to provide the user the ability to control how the contact information is displayed. This may be accomplished, for example, by selecting the fields containing the contact information the user desires to be displayed with the consolidated contact information 720. For example, the work email is selected with a check, as is the work phone number, thereby causing the user interface 700 to display the work email and phone number with the consolidated contact information 720. The user can also provide keywords, in the keywords field 760, and notes in the notes field 770, thereby enhancing the ability to search for certain contacts with keyword searches.

In summary, the present invention enables a user to access contact information, communication histories and files associated with contacts from one or more data stores. The user interface of the invention also enables a user to edit the contact information. Although many of the examples provided above are made with specific reference to contacts comprising individuals (e.g., Jane Doe), it will be appreciated that the user interface may be utilized for accessing desired contact information, communication histories and files associated with any types of contacts, including, but not limited, to people, organizations, groups, businesses and other entities.

By way of example, and not limitation, a restaurant may comprise a contact, such that the user interface may be utilized to view associated files, communication histories and contact information corresponding with the restaurant. This could be useful, for example, to view files like the restaurant menu and communications like special food offers in an aggregate and consolidated manner, along with contact information for contacting the restaurant.

Accordingly, the present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

1. In a computing system that is connected with a display device and that includes a user interface that is configured to display contact information at the display device, a method for displaying contact information from a plurality of contact information directories that are associated with a plurality of communication applications, the method comprising: an act of providing a remote store interface module, the interface module enabled to search and process information at remote devices; an act of providing a schema module, the schema module enabled to map contact information, files, and communication histories into categories and classifications which can be recognized for display and the schema module further enabled to organize data from remote stores into a single unifying schema; an act of receiving, at the computing system, a user request for contact information that corresponds to a predetermined contact; when contact information is stored remotely, an act of utilizing the interface module and schema module to access the remote information; an act of displaying, at the display device, the requested contact information; an act of providing a window for setting preferences for the manner in which the contact information is displayed; an act of providing, with the requested contact information, a link to a communication history of the predetermined contact, the communication history including a record of a plurality of different types of communications with the predetermined contact generated from a plurality of communication applications; and upon receiving a user request to view the communication history, comprising a selection of the link, an act of displaying the record of the communication history with the plurality of different types of communications generated from the plurality of communication applications.
 2. A method as recited in claim 1, wherein the contact information includes at least one of an image, a name, an email address, a telephone number and a status of the predetermined contact.
 3. A method as recited in claim 2, wherein the contact information includes an image, a name, an email address, a telephone number and a status of the predetermined contact.
 4. A method as recited in claim 1, wherein the contact information is accessed by the computing system from a plurality of contact information directories that are associated with the plurality of communication applications.
 5. A method as recited in claim 1, wherein the contact information is edited and published by the contact prior to being displayed on the display device.
 6. A method as recited in claim 1, wherein the contact information is edited by a user with an edit mode of the user interface.
 7. A method as recited in claim 1, wherein the record of the communication history includes a plurality of different types of communication application icons that are displayed alongside the plurality of different types of communications that are reflected in the communication history.
 8. A method as recited in claim 7, wherein the communication history is sorted by the type of communication applications from which the communications originated.
 9. A method as recited in claim 1, wherein the communication history includes a record of communications that are sorted by at least one of date and time in which the communications occurred.
 10. A method as recited in claim 1, wherein the communication history includes a record of communications that are sorted according to whether the communications were sent or received by the predetermined contact.
 11. A method as recited in claim 1, wherein the contact information is sorted into general contact information corresponding to the particular contact and into preferred contact information corresponding to the particular contact.
 12. A method as recited in claim 11, wherein the general contact information includes at least some of the preferred contact information.
 13. A method as recited in claim 11, wherein the preferred contact information is determined by a status of the predetermined contact.
 14. A method as recited in claim 11, wherein at least some of the preferred contact information is predetermined by the predetermined contact.
 15. A method as recited in claim 11, wherein at least some of the preferred contact information is designated by a user via the user interface.
 16. A method as recited in claim 1, further including an act of displaying contact-centric tasks, at least some of the contact-centric tasks corresponding with activities that are engaged in between the computing system and another computing system having suitable software and hardware configurations.
 17. A method as recited in claim 1, further including an act of displaying contact-centric tasks, at least some of the contact-centric tasks corresponding with activities that can be performed on a contact.
 18. In a computing system that is connected with a display device and that includes a user interface that is configured to display contact information at the display device, a method for displaying contact information from a plurality of contact information directories, the method comprising: an act of providing a remote store interface module, the interface module enabled to search and process information at remote devices; an act of providing a schema module, the schema module enabled to map contact information, files, and communication histories into categories and classifications which can be recognized for display and the schema module further enabled to organize data from remote stores into a single unifying schema; an act of receiving, at the computing system, a user request for contact information that corresponds to a predetermined contact; when contact information is stored remotely, an act of utilizing the interface module and schema module to access the remote information; an act of displaying, at the display device, the requested contact information within a contact information interface; an act of providing, with the requested contact information, and within the contact information interface, a link to files that are associated with the predetermined contact and that are accessible to the computing system; and upon receiving a user request to view the files associated with the predetermined contact, comprising a selection of the link, an act of automatically identifying and displaying the associated files at the display device.
 19. A method as recited in claim 18, wherein the contact information includes an image, a name, an email address, an IM address, an identity key, a telephone number and a status of the predetermined contact.
 20. A method as recited in claim 18, wherein the contact information is accessed by the computing system from a plurality of contact information directories.
 21. A method as recited in claim 18, wherein the contact information is edited and published by the contact prior to being displayed on the display device.
 22. A method as recited in claim 18, further including an act of enabling at least some of the contact information to be edited with the user interface.
 23. A method as recited in claim 18, further including an act of providing, with the requested contact information, and within the contact information interface, a link to a communication history of the predetermined contact, the communication history including a record of one or more communications with the predetermined contact generated from one or more communication applications.
 24. A method as recited in claim 23, wherein upon receiving a user request to view the communication history of the predetermined contact, the method further includes an act of displaying the communication history of the predetermined contact at the display device.
 25. A method as recited in claim 18, further including an act of providing a link for searching for related contacts that are related to the predetermined contact and an act of displaying the related contacts.
 26. In a computing system that is connected with a display device and that includes a user interface that is configured to display contact information at the display device, a method for displaying contact information from a plurality of contact information directories that are associated with a plurality of different communication applications, the method comprising: an act of providing a remote store interface module, the interface module enabled to search and process information at remote devices; an act of providing a schema module, the schema module enabled to map contact information, files, and communication histories into categories and classifications which can be recognized for display and the schema module further enabled to organize data from remote stores into a single unifying schema; an act of receiving, at the computing system, a user request for contact information that corresponds to a predetermined contact; when contact information is stored remotely, an act of utilizing the interface module and schema module to access the remote information; an act of displaying, at the display device, the requested contact information; an act of providing, with the requested contact information, a link to a communication history of the predetermined contact, the communication history including a display of a plurality of communications with the predetermined contact and that correspond to a plurality of different types of communication applications; upon receiving a user request to view the communication history of the predetermined contact, an act of displaying the plurality of communications generated from the plurality of different types of communication applications; an act of providing, with the requested contact information, a link to files that are associated with the predetermined contact and that are accessible to the computing system; and upon receiving a user request to view the files associated with the predetermined contact, an act of displaying the associated files at the display device.
 27. A method as recited in claim 26, wherein the contact information includes at least one of an image, a name, an email address, a telephone number and a status of the predetermined contact.
 28. A method as recited in claim 26, wherein the contact information is accessed by the computing system from a plurality of contact information directories.
 29. A method as recited in claim 26, wherein at least some of the contact information is edited and published by the contact prior to being displayed on the display device.
 30. A method as recited in claim 26, further including an act of enabling at least some of the contact information to be edited with the user interface.
 31. A method as recited in claim 26, wherein the communication history includes a single record of communications originating from a plurality of different types of communication applications.
 32. A method as recited in claim 26, wherein the communication history is sorted by the type of communication applications from which the communications originated.
 33. A method as recited in claim 26, wherein the communication history includes a record of communications that are sorted by at least one of date and time in which the communications occurred.
 34. A method as recited in claim 26, wherein the communication history includes a record of communications that are sorted according to whether the communications were sent or received by the predetermined contact.
 35. A method as recited in claim 26, further including an act of displaying contact-centric tasks, at least some of the contact-centric tasks corresponding with activities that are engaged in between the computing system and another computing system having suitable software and hardware configurations.
 36. In a computing system that is connected with a display device and that includes a user interface that is configured to display contact information at the display device, a method for displaying contact information from a plurality of contact information directories, the method comprising: an act of providing a remote store interface module, the interface module enabled to search and process information at remote devices; an act of providing a schema module, the schema module enabled to map contact information, files, and communication histories into categories and classifications which can be recognized for display and the schema module further enabled to organize data from remote stores into a single unifying schema; when contact information is stored remotely, an act of utilizing the interface module and schema module to access the remote information; displaying contact information corresponding to a predetermined contact with a contact information interface, the contact information including contact information automatically gathered from a plurality of different communication application directories; an act of providing a link to a communication history of the predetermined contact within the contact information interface, wherein the communication history comprises a display of a plurality communications with the predetermined contact and that are generated from a plurality of different types of communication applications; and an act of providing a link to associated files that are associated with the predetermined contact and that are accessible to the computing system within the contact information interface.
 37. A method as recited in claim 36, wherein the method further comprises: upon receiving a user request to view the communication history, in response to a selection of the link to the communication history, an act of displaying the communication history; upon receiving a user request to view the associated files, in response to a selection of the link to the associated files, an act of displaying the associated files; and upon receiving a user request to view contact information corresponding to a contact, an act of displaying the contact information within the contact information interface.
 38. A method as recited in claim 37, wherein the contact information includes at least one of an image, a name, an email address, a telephone number and a status of the predetermined contact.
 39. A method as recited in claim 37, further including an act of enabling at least some of the contact information to be edited with the user interface.
 40. A computer program product for use in a computing system that is connected with a display device and that includes a user interface that is configured to display contact information at the display device, the computer program product comprising: one or more physical computer-readable media having computer-executable instructions stored thereon for implementing the method recited in claim
 26. 